Determination of meta-stable latch bias voltages

ABSTRACT

A latch is analyzed to determine meta-stable voltage bias points, which are then used to determine one or more of a settling time of the latch, a mean time before failure (MTBF) for a synchronizing circuit using the latch, or a regeneration time constant (Tau). The latch is analyzed by decomposing the latch circuit into a feed-forward circuit and a feedback circuit and then determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit. The transfer functions are then used to solve for meta-stable voltage bias points. The meta-stable voltage bias points are used as an initial condition for a simulation or measurement of the latch in order to measure settling time. The voltage curve during the settling time of the latch is used to calculate a value for Tau.

FIELD OF ART

This application relates generally to semiconductors and more particularly to determining a meta-stable latch bias voltage for a semiconductor latch.

BACKGROUND

Meta-stability of logic circuits capable of storing a logic state, such as a latch, a multi-stage latch, or a flip-flop, has been a known problem in logic designs for many years. Meta-stability is inherent in storage elements that incorporate feedback and, under certain conditions, may occur even in properly designed circuits. A storage element may enter a meta-stable state if the setup or hold timing parameters of the storage element are not met. In synchronous circuit designs, most logic paths can be established so that the setup and hold parameters are inherently designed to be met. But, for data values that are received from a clock domain that is asynchronous to the clock domain of receiving circuitry, there is a chance that an input line may switch at a time that renders the setup and hold time parameters unmet in the receiving storage element.

A common design technique to counter this problem is the use of synchronizing circuits on a line coming into a clock domain within a logic design, where the line is driven with data that is asynchronous or is driven from a different clock domain. A synchronizing circuit couples the input line to the input of a latch or flip-flop (hereinafter simply referred to as a storage element) which is then clocked using the clock of the clock domain that the input line is entering. Some synchronizing circuits may use additional cascaded storage elements, with the output of the first storage element driving the input of the second storage element and so on, all clocked by the same clock. Most synchronizing circuits use at least two cascaded storage elements, although some synchronizing circuits may use additional cascaded storage elements to increase mean time between failures (MTBF) at the cost of increased latency in detecting changes on the input line.

The idea behind a synchronizing circuit is not to eliminate meta-stability, as meta-stable states may still occur in the storage elements if the input line happens to switch during the setup/hold window. But, by using only the output of the first storage element to drive the second storage element, potentially disruptive effects of meta-stability may be avoided. This is because as long as the output of the first storage element has settled to a valid state in time to meet the setup time of the next storage element, the output of the second storage element will not go into a meta-stable state. Further, each additional cascaded stage reduces the probably of the final stage of the synchronizing circuit being in a meta-stable state.

The rate at which the output of a storage element settles to a valid logic level from a meta-stable state is related to an exponential time constant. This time constant is known in the industry as the regeneration time-constant or τ (Tau). While Tau is an intrinsic parameter of a particular circuit, it may also be affected by supply voltage and temperature, and typically increases with lower supply voltages and/or lower temperatures.

Tau is helpful in understanding the meta-stable state of a storage element, and may be used to calculate a MTBF. But other information about the design may also be necessary to determine a MTBF, which is often an important design goal. Information such as the clock period, clock duty cycle, rate of input data transitions, and the number of stages of a synchronizer may all impact the MTBF.

The ability to calculate MTBF can be important to understanding whether a design meets its design goals. In the past, Tau has often been estimated as being proportional to the propagation delay of an inverter circuit with a fan-out of four (FO4). FO4 is easily measured for any particular process technology, supply voltage, and temperature. But in modern semiconductors with geometries below 100 nanometers (nm), the relationship between Tau and FO4 may no longer be valid, leaving no easy way to calculate MTBF.

SUMMARY

A latch is analyzed to determine meta-stable voltage bias points that may be used to determine one or more of a settling time of the latch, a mean time before failure (MTBF) for a synchronizing circuit using the latch, or a regeneration time constant (Tau). A computer-implemented method for circuit analysis is disclosed comprising: obtaining a description for a latch circuit; decomposing the latch circuit into a feed-forward circuit and a feedback circuit; determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and solving for meta-stable voltage bias points based on the first transfer function and the second transfer function.

The meta-stable voltage bias points may be accomplished based on an intersection of the first transfer function and the second transfer function. The method may further comprise calculating a settling time for the latch circuit based on the first transfer function and the second transfer function. The settling time may be further based on the meta-stable voltage bias points. The calculating of the settling time may be accomplished by applying the meta-stable voltage bias points; releasing the applying of the meta-stable voltage bias points; allowing signal to develop in the latch circuit; and fitting an exponential equation to a resulting waveform. The calculating of the settling time may be accomplished by simulation. The simulation may be a Spice-type simulation. The method may further comprise calculating a mean time between failure for the latch circuit based on the settling time.

The method may further comprise testing and confirming the meta-stable voltage bias points by evaluating the latch circuit, including both the feed-forward circuit and the feedback circuit, with a voltage source applied to an input to the latch circuit and identifying a voltage for the voltage source by minimizing current through the voltage source. The identifying the voltage may be accomplished by sweeping the voltage for the voltage source. The identifying the voltage may be accomplished by performing a binary search of applied voltages with the voltage source. The method may further comprise refining the settling time by releasing the voltage source from the voltage which was identified and calculating the settling time based on a fit of an exponential equation to a resulting waveform.

The determining the first transfer function and the second transfer function may be accomplished using a Spice-type simulator. The latch circuit may be comprised of a plurality of transistors. The feed-forward circuit may be comprised of a first subset of the plurality of transistors. The feedback circuit may be comprised of a second subset of the plurality of transistors. The first subset and the second subset, of the plurality of transistors, may be exclusive of one another. The first transfer function may provide an input-voltage to an output-voltage relationship for the feed-forward circuit. The second transfer function may provide an input-voltage to an output-voltage relationship for the feedback circuit. A node for an input to the feed-forward circuit may comprise a node for an output from the feedback circuit. A node for an input to the feedback circuit may comprise a node for an output from the feed-forward circuit.

In embodiments, a computer-implemented method for circuit analysis may comprise: obtaining a description for a latch circuit; evaluating the latch circuit, including both a feed-forward circuit and a feedback circuit; applying a voltage source to an input to the latch circuit during simulation; identifying a voltage for the voltage source where current through the voltage source is minimized; and solving for a meta-stable voltage bias point based on the voltage which was identified. The identifying the voltage may be accomplished by sweeping the voltage for the voltage source. The identifying the voltage may be accomplished by performing a binary search of applied voltages with the voltage source. The method may further comprise calculating a settling time for the latch circuit by releasing the voltage source from the voltage which was identified and calculating the settling time based on a fit of an exponential equation to a resulting waveform. The method may further comprise testing and confirming the meta-stable voltage bias point by decomposing the latch circuit into a feed-forward circuit and a feedback circuit; determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and identifying a voltage bias point based on the first transfer function and the second transfer function. In some embodiments, a computer system for circuit analysis may comprise: a memory which stores instructions; one or more processors coupled to the memory wherein the one or more processors are configured to: obtain a description for a latch circuit; evaluate the latch circuit, including both a feed-forward circuit and a feedback circuit; apply a voltage source to an input to the latch circuit during simulation; identify a voltage for the voltage source where current through the voltage source is minimized; and solve for a meta-stable voltage bias point based on the voltage which was identified. In embodiments, a computer program product embodied in a non-transitory computer readable medium for circuit analysis may comprise: code for obtaining a description for a latch circuit; code for evaluating the latch circuit, including both a feed-forward circuit and a feedback circuit; code for applying a voltage source to an input to the latch circuit during simulation; code for identifying a voltage for the voltage source where current through the voltage source is minimized; and code for solving for a meta-stable voltage bias point based on the voltage which was identified.

In embodiments, a computer system for circuit analysis may comprise: a memory which stores instructions; one or more processors coupled to the memory wherein the one or more processors are configured to: obtain a description for a latch circuit; decompose the latch circuit into a feed-forward circuit and a feedback circuit; determine a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and solve for meta-stable voltage bias points based on the first transfer function and the second transfer function. In some embodiments, a computer program product embodied in a non-transitory computer readable medium for circuit analysis may comprise: code for obtaining a description for a latch circuit; code for decomposing the latch circuit into a feed-forward circuit and a feedback circuit; code for determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and code for solving for meta-stable voltage bias points based on the first transfer function and the second transfer function.

Various features, aspects, and advantages of various embodiments will become more apparent from the following further description.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description of certain embodiments may be understood by reference to the following figures wherein:

FIG. 1 is a flow diagram for meta-stable latch bias determination.

FIG. 2 is an example circuit diagram showing a two-stage latch configuration.

FIG. 3 shows an example of decomposing a latch.

FIG. 4 shows example transfer functions.

FIG. 5 shows an example intersection of transfer functions.

FIG. 6 shows example settling times.

FIG. 7 is a flow diagram for meta-stable latch bias determination.

FIG. 8 is a system diagram for meta-stable bias determination.

DETAILED DESCRIPTION

A latch may be analyzed to determine meta-stable voltage bias points which may be used to determine one or more of a settling time of the latch, a mean time before failure (MTBF) for a synchronizing circuit using the latch, or a regeneration time constant (Tau). A latch, as the term is used herein, is a logic circuit with the capability to store a logical level by using a feedback path. In embodiments, a design description for the latch is obtained. The design description may be in any form, but can be a Spice model in at least some embodiments.

In at least one embodiment, the meta-stable voltage bias points may be determined by applying a voltage source to the input of the latch, where that input is also connected to the active feedback circuit of the latch, and then varying the voltage source to find a voltage level where the absolute value, or magnitude, of the current through the voltage source is minimized. The applying of the voltage source and the measurement of the current may occur within a simulator or on a test chip. In some embodiments, the voltage source may be linearly swept or ramped, either increasing or decreasing, across a voltage range between the voltage supplies to the latch circuit, while the current from the voltage source is monitored. In other embodiments, the voltage source may be set to a level and its current measured, then the voltage source may be changed to a different level and its current measured again. The voltage of the voltage source may be changed in such a way that a directed search, such as a binary search, may be performed through the voltage range to find the voltage point with the least current. Once the voltage with the minimum current is found, that voltage may be identified as the first of the meta-stable voltage bias points with the voltage at the output of the latch identified as the second meta-stable voltage bias point.

In other embodiments the latch is analyzed by decomposing the latch circuit into a feed-forward circuit and a feedback circuit. The feed-forward circuit and the feedback circuit can then be separately evaluated, in some embodiments, to determine the respective transfer functions for the circuits. The evaluation may be performed on a test chip by measuring an output voltage of the circuits at various input voltages. In other embodiments, a Spice simulator or another type of simulator may be used to determine the respective transfer functions of the circuits over a range of input voltages for a particular supply voltage and temperature. A first transfer function may be determined for the feed-forward circuit and a second transfer function may be determined for the feedback circuit.

The transfer functions are then used to solve for meta-stable voltage bias points. In at least one embodiment, the transfer functions may be plotted on a graph, with the x-axis used for the input voltage of the first transfer function and the output voltage of the second transfer function, and the y-axis used for the output voltage of the first transfer function and the input voltage of the second transfer function. The point on the graph where the two transfer functions cross may define the meta-stable voltage bias points—the x-axis and the y-axis values of that crossing point symbolizing the meta-stable voltage bias points. In other embodiments, the transfer functions may be fitted to two equations with the two equations solved simultaneously to determine the voltage bias points. In yet other embodiments, variant numerical, graphical, or other methods may be used to determine the meta-stable voltage bias points using the transfer functions of the feed-forward and the feedback circuits of the latch.

Once the meta-stable voltage bias points have been determined, they may be used as an initial condition for a simulation or measurement of the latch. The input of the latch may be set to a voltage level equal to the first meta-stable voltage bias point. Then, in embodiments, the voltage source is removed to let the latch settle into one of its two stable states. The output may be monitored to measure the settling time from the moment the voltage source at the first meta-stable voltage bias point is removed—the release of the input—to the time that the output of the latch is at a valid logic level. The voltage source may be applied and the output monitored on a test chip or in a simulator, depending on the embodiment.

In some embodiments, the voltage curve during the settling time of the latch may be used to calculate a value for Tau. The voltage curve may be fitted to an exponential equation with an exponent of t/τ to determine Tau (τ). Either the settling time or Tau may be used to calculate a MTBF for a synchronizing circuit using the latch, in some embodiments.

FIG. 1 is a flow diagram for meta-stable latch bias determination. The flow 100 describes a computer-implemented method for circuit analysis, and includes obtaining a description for a latch circuit 110. The description may be in any form, including, but not limited to, a schematic, a net list, a physical design description, a SPICE model, or a design description language such as VHDL-MOS or VHDL-AMS. The obtaining can include importing a design and supporting information or it can involve having the design and information already within a software tool. The obtaining can be part of an electronic design automation (EDA) process. The flow 100 includes decomposing the latch circuit into a feed-forward circuit and a feedback circuit 120. Decomposing the latch circuit may create two separate descriptions—one for the feed-forward circuit, and one for the feedback circuit—that may be in the same format as the original circuit description or may be in a different format. The feed-forward circuit may have its input coupled both to the input of the overall latch and the output of the feedback circuit. The output of the feed-forward circuit may be coupled to both the output of the overall latch and the input of the feedback circuit.

The flow 100 further comprises determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit 130. Determining the first transfer function and the second transfer function may be accomplished using a Spice-type simulator in some embodiments, but other embodiments may determine the transfer function using a different type of simulator or a measurement of one or more actually manufactured circuits, with the measurement used to gage the circuits' compliance with the description of the latch circuit being analyzed. Environment conditions such as temperature and design voltage may be specified for a particular determination of transfer functions. The first transfer function for the feed-forward circuit may provide an input-voltage to an output-voltage relationship for the feed-forward circuit. The second transfer function for the feedback circuit may provide an input-voltage to an output-voltage relationship for the feedback circuit.

The flow 100 comprises solving for meta-stable voltage bias points 140 based on the first transfer function and the second transfer function. Solving for the meta-stable voltage bias points may involve determining a first voltage, which, if applied to the input of the feed-forward circuit, causes the feed-forward circuit to drive a second voltage at its output, and a second voltage, which, if applied to the input of the feedback circuit, causes the feedback circuit to drive a second voltage at its output. The first voltage may then be referred to as the first meta-stable voltage bias point and the second voltage may then be referred to as the second meta-stable voltage bias point.

In at least one embodiment, the meta-stable voltage points may be applied 142 to the latch circuit, either in a Spice-type simulator, some other type of simulator, or to a physical circuit, so that the first voltage is applied to both the input of the feed-forward circuit and the output of the feedback circuit, and that the second voltage is applied to both the output of the feed-forward circuit and the input of the feedback circuit. Then, the meta-stable voltage points may be released 144, so that the latch circuitry is allowed to drive the voltage at the nodes of the circuit to the values determined by the latch circuitry. Time may then be provided to allow the signal to develop 146 and become stable. The voltage waveform at the output of the latch circuitry may then be fitted to an exponential equation 148 using any known curve fitting technique. A value for Tau may then be determined based on the exponential equation.

A time measurement for the voltage waveform at the output of the latch circuitry may be taken in order to determine a settling time for the latch circuitry. In some embodiments, the settling time may be measured from the time that the meta-stable voltage points are released until the output voltage is within a valid voltage range to represent a logic level. Because the settling time may be measured within a simulation using the first transfer function and the second transfer function, the flow 100 may further comprise calculating a settling time for the latch 150 circuit based on the first transfer function and the second transfer function. So, the calculating of the settling time 150 may be accomplished by applying the meta-stable voltage bias points 142, releasing the applying of the meta-stable voltage bias points 144, allowing signal to develop in the latch circuit 146, and fitting an exponential equation 148 to a resulting waveform.

In some embodiments, the flow 100 may further comprise calculating a MTBF for the latch circuit 152 based on the settling time, which may also be used to determine a value for Tau. For a given asynchronous transition on an input of a multi-stage synchronizer, the probability of the first latch entering a meta-stable state (P_(E)) is bounded by the probability of the transition violating either the setup (t_(s)) or the hold (t_(h)) parameter of the latch. So, P_(E) may be calculated to have a worst case value of P_(E)=(t_(s)+t_(h))/t_(CLK)=f_(CLK)×(t_(s)+t_(h)). The output of the second latch will not go to a meta-stable state if the output of the first latch is valid at least t_(s) before the next clock, so the only time that the second latch may enter the meta-stable state is if the first latch has entered the meta-stable state and has taken so long to settle that it is not valid at least t_(s) before the next clock. The probability of the output of a latch having not settled in time to meet t_(s) of the next latch may be calculated to have a worst case value of: P _(S) =e ^(−[(t) ^(CLK) ^(−t) ^(s) ^(−t) ^(min) ⁾/τ] where t_(min) is the minimum propagation delay of the latch. So, the overall probability of a synchronization failure may be calculated as P_(F)=P_(E)×P_(S) ^((N-1)), where N is equal to the number of stages of the synchronizer. Additionally, where the frequency of transitions on the input is f_(e), the MTBF may be calculated using the equation 1/(f_(e)×P_(F)), thus rendering the following equation useful to calculate MTBF based on Tau (τ) for a multi-stage synchronizer:

${MTBF} = \frac{1}{f_{e} \times \frac{\left( {t_{s} - t_{h}} \right)}{t_{CLK}} \times {\mathbb{e}}^{- {\lbrack\frac{{({N - 1})}{({t_{CLK} - t_{s} - t_{\min}})}}{\tau}\rbrack}}}$

The flow 100 may further comprise testing and confirming the meta-stable voltage bias points 160 by evaluating the latch circuit, including both the feed-forward circuit and the feedback circuit, using a voltage source applied to an input to the latch circuit, where that input is also coupled to the active feedback circuit of the latch, and identifying a voltage for the voltage source by minimizing current through the voltage source. The current may be minimized by varying the voltage source and determining the current in a simulation. In some embodiments, the voltage source may be swept through a range while measuring the current; using this technique, a minimum current magnitude may be found. In other embodiments, the current measurements taken with previous voltage levels may be used to determine a next voltage level to try, so that fewer measurements may be used to find the voltage level having the minimum current. In some embodiments, the settling time may be refined by releasing the voltage source from the voltage which was identified and calculating the settling time based on a fit of an exponential equation to a resulting waveform. In some embodiments, the settling time may be calculated for the various voltage levels simulated. Various steps in the flow 100 may be changed in order, repeated, omitted, or the like without departing from the disclosed concepts. Various embodiments of the flow 100 may be included in a computer program product embodied in a non-transitory computer readable medium that includes code executable by one or more processors.

FIG. 2 is an example circuit diagram showing a two-stage latch configuration. The two-stage latch circuit 200 may be comprised of a plurality of transistors. Some embodiments may include additional circuitry and may not include some of the circuit blocks shown. Other embodiments may utilize dramatically different circuitry. Circuitry 210 provides an inverted copy of the S_(E)—shift enable—line, and circuitry 212 provides an inverted copy of the CK line, which is the clock for the two-stage latch circuit 200. Circuitry 214 is a dynamic input buffer for the two-stage latch circuitry 200. Circuitry 214 outputs an inverted value of the input line D if S_(E) is low, and an inverted value of the S_(I)—shift input—line if the S_(E) line is high. Circuitry 214 actively drives its output during times when the CK line is low and floats its output during times when the CK line is high.

Circuitry 220 is a first stage of the latch and includes a first feed-forward circuit and a first feedback circuit. The first feedback circuit is enabled during times that the CK line is high, in order to keep the first feedback circuit from conflicting with the output of circuitry 214. The input of circuitry 220 is denoted as test point I1 222 and the output of the circuitry 220 is denoted as test point I2 232. Pass circuitry 230 couples the output of the first stage of the latch, circuitry 220, to the input of the second stage or the latch, circuitry 240, during the time that the CK line is high. The input of the second stage of the latch is denoted as test point I98 242 and the output of the second stage of the latch is denoted as test point I99 252. The circuitry 240 includes a second feed-forward circuit and a second feedback circuit to implement the second stage of the latch. Output buffer 250 inverts the output of the second stage of the latch to drive the output Q 254 of the latch 200.

In some embodiments, the meta-stable voltage bias points may be determined by evaluating the first latch circuit 220 and/or the second latch circuit 240. The evaluating includes both the feed-forward circuit and the feedback circuit. In evaluating the first latch circuit 220, a voltage source may be applied to an input 222 to the latch circuit 220 and a voltage for the voltage source identified by minimizing current through the voltage source. In at least some embodiments, the meta-stable voltage bias points may be determined in a simulator, so the voltage source may be virtually applied to the input 222. The CK line may be held high during the determination of the meta-stable voltage bias points for the latch circuit 220 so that the feedback circuitry is activated. The voltage of the voltage source may then be varied while the current flow through the voltage source is monitored, and the voltage at which the magnitude of the current flow through the voltage source is minimized may be determined to be a meta-stable voltage bias point for the input of the feed-forward circuitry. The meta-stable voltage bias point for the input of the feedback circuitry may be determined by measuring the voltage at the output 232 of the latch circuitry 220 with the input 222 at the meta-stable voltage bias point for the input of the feed-forward circuitry.

The voltage may be varied in any way in order to find the voltage with a minimum of current leaking through the voltage source. In some embodiments, the identifying of the voltage may be accomplished by sweeping the voltage for the voltage source though a range of voltages. The sweeping of the voltage may be done using an analog methodology or using a digital methodology which implements discrete changes in the voltage to monotonically ramp the voltage through the range, either by increasing or decreasing the voltage. In some embodiments, the identifying of the voltage may be accomplished by performing a binary search of applied voltages with the voltage source. Other algorithms may be used to vary the voltage source in other embodiments.

FIG. 3 shows an example of decomposing a latch. In the example 300, an example latch circuit 310—which, in some embodiments, may be a part of a multi-stage latch—may be analyzed. The latch circuit 310 has an input I1 312 and an output I2 314. The latch circuit 310 comprises a plurality of transistors, including n-channel field-effect transistors (NFETs) N350, N352, and N360, along with p-channel field-effect transistors (PFETs) P350, P352, and P360. The latch circuit 310 is decomposed 340 into a feed-forward circuit 320 with an input 322 that is coupled to the input I1 312 of the latch circuit 310 and an output 324 that is coupled to the output I2 314 of the latch circuit 310. The feed-forward circuit 320 is comprised of a first subset, NFET N360 and PFET P360, of the plurality of transistors. The latch circuit 310 is further decomposed 342 into a feedback circuit 330 with an input 332 that is coupled to the output I2 314 of the latch circuit 310 and an output 334 that is coupled to the input I1 312 of the latch circuit 310. The feedback circuit 330 may be comprised of a second subset—NFETs N350, N352 and PFETs P350, P352—of the plurality of transistors. In at least some embodiments, the first subset and the second subset, of the plurality of transistors, may be exclusive of one another.

A latch, as the term is used herein, is a circuit used to store a logical value that includes a feed-forward circuit and a feedback circuit. In some embodiments, a node for an input to the feed-forward circuit may comprise a node for the output from the feedback circuit, and a node for an input to the feedback circuit may comprise a node for the output from the feed-forward circuit. In other embodiments, additional circuitry may be interposed between the output of the feedback circuitry and the input of the feed-forward circuitry, and/or between the output of feed-forward circuitry and the input of the feedback circuitry.

In some embodiments a voltage source V390 can be coupled to the input I1 312 in order to test and confirm or further refine the meta-stable voltage bias points. The voltage source V390 is included for simulation and analysis purposes and is not reflected in hardware. As indicated earlier, the input I1 312 is coupled to the output of the feedback circuit 330. The voltage source V390 is used to identify a voltage value associated with minimizing the current 1390 through the voltage source. The voltage value may be determined by sweeping voltages applied by the voltage source V390, by performing a binary search of applied voltages, or by other techniques. The settling time may be refined by releasing the voltage source from the voltage which was identified and calculating the settling time based on a fit of an exponential equation to a resulting waveform.

FIG. 4 shows example transfer functions 400. The first transfer function 420 provides an input-voltage 422 to output-voltage 424 relationship for the feed-forward circuit 320 of FIG. 3. The second transfer function 440 provides an input-voltage 442 to an output-voltage 444 relationship for the feedback circuit 330 of FIG. 3. The plotted transfer functions 420 and 440 may depend on the particular circuit design, the semiconductor process/geometry, the supply voltage (V_(DD)), the operational temperature, and/or other parameters related to environmental conditions found within a particular embodiment. In some embodiments, the determining of the first transfer function and the second transfer function are accomplished using a Spice-type simulator. In some embodiments, the determining of the first transfer function and the second transfer function are accomplished by measuring a test chip. The determining of the first transfer function and the second transfer function may be accomplished by other methods as well.

FIG. 5 shows an example intersection of transfer functions. The butterfly diagram 500 may be formed using a first transfer function 520 and a second transfer function 540 for the feed-forward circuitry and the feedback circuitry, respectively, of a latch. The first transfer function 520 is plotted using the x-axis voltage 552 as the input voltage and the y-axis voltage 554 as the output voltage. The second transfer function 540 is plotted using the y-axis voltage 554 as the input voltage and the x-axis voltage 552 as the output voltage. A first rectangle 562 that is inscribed between the first transfer function 520 and second transfer function 540 may show a stable area for one state of the latch, and a second rectangle 564 that is inscribed between the first transfer function 520 and second transfer function 540 may show a stable area for another state of the latch. The size of the rectangles (562 and 564) may be indicative of stability of the state within the latch, with the size of the smaller of the two rectangles (562 and 564) indicating the stability of the latch; with a larger rectangle indicating a more stable latch.

In at least one embodiment, the solving for the meta-stable voltage bias points 572, 574 may be accomplished based on an intersection of the first transfer function 520 and the second transfer function 540. The first meta-stable voltage bias point 572, which may be 478.977 millivolts (mV) in at least one embodiment, may represent the meta-stable voltage bias point for the input of the latch, which is coupled to the input of the feed-forward circuit and the output of the feedback circuit. The second meta-stable voltage bias point 574, which may be 469.854 mV in at least one embodiment, may represent the meta-stable voltage bias point for the output of the latch, which is coupled to the output of the feed-forward circuit and the input of the feedback circuit. If the latch's input is at the first meta-stable voltage bias point 572, causing the output to be driven by the feed-forward circuit to the second meta-stable voltage bias point 574, the latch may be in an unstable equilibrium or meta-stability state, because the feedback circuit generates the first meta-stable voltage bias point 572 if its input is at the second meta-stable voltage bias point 574.

FIG. 6 shows example setting times. The voltage waveforms 600 show an absolute value of the voltage differential between the input and the output of a latch for different V_(DD) values of the latch circuit at a given temperature. A similar set of waveforms may be generated for different temperatures at a given V_(DD) voltage, although for calculating a setting time and or Tau, a worst case temperature for an embodiment may be chosen, such as a minimum temperature or a temperature lower than a minimum specified operating temperature for the latch.

By applying the first meta-stable voltage bias point to the input of the latch and then removing the voltage source, the latch is put into a meta-stable state. Depending on various factors, the latch may resolve into either a set or reset state from the meta-stable state. The time that the latch takes to resolve to a stable set or reset state may be referred to as the settling time for the latch. Because the latch in inverting in the embodiment shown, a differential voltage across the latch may be measured to determine a state of the latch. If the differential voltage is much less than V_(DD), such as near 0 V, the latch may be in a meta-stable state. If the absolute value of the voltage across the latch is close to V_(DD), the latch may be in a stable state. In some embodiments, including embodiments where the latch is non-inverting, the voltage level at the output of the latch may be directly used to calculate the settling time instead of using the voltage differential across the latch.

The settling time of the latch may be measured by applying a voltage source equal to the first meta-stable voltage bias point to the input of the latch and then removing the voltage source to observe the behavior of the latch. In the example shown, the x-axis 610 shows elapsed time since removing the voltage source, and the y-axis 612 shows the absolute value of the voltage differential across the latch. In the example 600, the meta-stable voltage points have been calculated with different values of V_(DD) for the latch. A voltage differential V_(d)(t) has also been measured for each V_(DD). V_(d)(t) with V_(DD)=1.10 volts (V) is shown by curve 620. Curve 622 shows V_(d)(t) at V_(DD)=1.05 V, curve 624 shows V_(d)(t) at V_(DD)=0.99 V, curve 628 shows V_(d)(t) at V_(DD)=0.95 V, and curve 630 shows V_(d)(t) at V_(DD)=0.90 V. For at least some semiconductor technologies, the settling time increases as V_(DD) decreases.

The measurement of the settling time may be done on a test chip, or in a simulator, which may calculate the measuring time. Thus, the calculating of the settling time may be accomplished by simulation with the simulation comprising a Spice-type simulation in at least some embodiments. As discussed above, the settling time may be further based on the meta-stable voltage bias points. And, because the meta-stable voltage bias points may be determined based on the first transfer function and the second transfer function, the calculation of settling time for the latch circuit may be based on the first transfer function and the second transfer function.

Once the voltage curve is determined for the V_(DD) and temperature of interest, the curve may be fitted to an exponential equation using any known curve fitting technique to determine a value for Tau. The equation to be fitted may be: V _(d)(t)=Ke ^(t/τ) +C,0≦V _(d)(t)<V _(DD) where K and C are constants and K+C is equal to the absolute value of the difference between the two meta-stable voltage bias points. C has a value in the range of −K≦C<V_(DD)−K and may be zero in some embodiments, and K has a non-zero positive value.

FIG. 7 is a flow diagram for meta-stable latch bias determination. The flow 700 describes a computer-implemented method for circuit analysis which includes obtaining a description of a latch circuit 710. The description may include a physical description of a design, a schematic diagram, a netlist, a model including a SPICE model, and a description language including a design language such as Verilog™ or VHDL™. The obtaining may include having a design and its supporting information already stored in memory or a software tool, or may be read, loaded, imported, and so on, into the tool. The obtaining may be a part of a design process including an electronic design automation (EDA) process. The flow 700 includes evaluating the latch circuit 720, including both a feed-forward circuit and a feedback circuit. The inputs to the two circuits may be coupled to other circuits. For example, an input of the feed-forward circuit may be coupled both to the input of the overall latch circuit and an output of the feedback circuit. Similarly, the output of the feed-forward circuit may be coupled both to an output of the overall latch circuit and an input of the feedback circuit.

The flow 700 includes applying a voltage source to an input of the latch circuit during simulation 730. The voltage source which is applied may be any voltage source appropriate to the simulation of the latch circuit and may be any voltage source supported by a simulator. For example, the voltage source may be a transient voltage, a piecewise linear voltage, a swept voltage, a sinusoidal voltage, a data file representing a voltage, and so on.

The flow 700 includes identifying a voltage for the voltage source where current through the voltage source is minimized 740. The identifying may be undertaken during simulation using an appropriate simulator such as a SPICE-type simulator. The identifying may include causing the voltage of a voltage source to be varied. For example, the voltage source voltage may be swept 742. The sweeping of the voltage source voltage may be from a low voltage to a high voltage where the low voltage and high voltage are voltages appropriate to the latch circuit being simulated. Similarly, the sweeping of the voltage source may be from a high voltage to a low voltage where the high voltage and low voltage are voltages appropriate to the latch circuit being simulated. The identifying may include performing a binary search of voltages with the voltage source 744. The binary voltage search may include any appropriate binary search, e.g. by successive approximation. In embodiments, the binary search of voltages may be more efficient than sweeping of the voltage source voltage.

The flow 700 includes solving for a meta-stable voltage bias point based on the voltage which was identified 760. The voltage which was identified may be the voltage at which the current through the voltage source was minimized. Solving for the meta-stable voltage bias points may involve determining a first voltage, which, if applied to the input of the feed-forward circuit, causes the feed-forward circuit to drive a second voltage at its output, and a second voltage, which, if applied to the input of the feedback circuit, causes the feedback circuit to drive a second voltage at its output. The first voltage may then be referred to as the first meta-stable voltage bias point and the second voltage may then be referred to as the second meta-stable voltage bias point. The solving of the meta-stable voltage bias point may include calculating a settling time for the latch circuit 746. The latch circuit settling time may include determining the time required for the output voltage of the latch to settle to a valid state following a change of the input voltage. The calculating of a settling time may include releasing the voltage source from a voltage 748. The releasing of the voltage may include releasing the voltage source from the voltage which was identified at which the current through the voltage source is minimized. The calculating may include calculating the settling time based on a fit of an exponential equation to a resulting waveform 750. Any fitting technique appropriate to fitting of a resulting waveform may be implemented.

The flow 700 may include testing and confirming the meta-stable voltage bias point 770. Any testing and confirming techniques appropriate to latch circuit analysis may be used. The testing and confirming may include decomposing the latch circuit into a feed-forward circuit and a feedback circuit. Decomposing the latch circuit may create two separate circuits—one for the feed-forward circuit, and one for the feedback circuit. The feed-forward circuit may have its input coupled both to the input of the overall latch and the output of the feedback circuit. The output of the feed-forward circuit may be coupled to both an output of the overall latch and the input of the feedback circuit. Two transfer functions may be determined, a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit. The transfer functions may be determined by simulation using, for example a SPICE-type simulator. The transfer functions may be determined using other simulation techniques or may be based on a measurement of one or more manufactured circuits, for example. Environmental conditions such as temperature and voltage may be specified for a particular determination of first and second transfer functions. A voltage bias point may be identified based on the first transfer function and the second transfer function. Solving the transfer functions, measurement of manufactured parts, and so on, may identify the voltage bias point. The identified voltage bias point may be used to confirm the meta-stable voltage bias point for which a solution was found above.

FIG. 8 is a system diagram for meta-stable bias determination. The system 800 may include one or more processors 810 coupled to memory 812 to store instructions and or data. A display 814 may be included in some embodiments to show results to a user. The system may include a non-transitory computer readable medium, such as a disk drive, that may store a latch description 820 and other information or code useful in evaluating metastability. Other data and or software may also be included in the system 800. The one or more processors 810 may be configured to implement any of the methods described herein. In at least one embodiment, the one or more processors are configured to obtain a description for a latch circuit, decompose the latch circuit into a feed-forward circuit and a feedback circuit, determine a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit, and solve for meta-stable voltage bias points based on the first transfer function and the second transfer function.

The system 800 may include an ability to obtain a latch description 820. The system 800 may include a decomposing module 830 to analyze the latch circuit and separate it into a feed-forward circuit and a feedback circuit. The system 800 may include a determining module 840 for calculating transfer functions for the feed-forward and feedback circuits. The system may include a solving module 850 for evaluating the meta-stable voltage bias points based on the transfer functions. In at least one embodiment, the decomposing, the determining, and the solving functions may be accomplished by the one or more processors 810. The system 800 may include a computer program product embodied in a non-transitory computer readable medium for circuit analysis including: code for obtaining a description for a latch circuit; code for decomposing the latch circuit into a feed-forward circuit and a feedback circuit; code for determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and code for solving for meta-stable voltage bias points based on the first transfer function and the second transfer function.

Each of the above methods may be executed on one or more processors on one or more computer systems. Embodiments may include various forms of distributed computing, client/server computing, and cloud based computing. Further, it will be understood that the depicted steps or boxes contained in this disclosure's flow charts are solely illustrative and explanatory. The steps may be modified, omitted, repeated, or re-ordered without departing from the scope of this disclosure. Further, each step may contain one or more sub-steps. While the foregoing drawings and description set forth functional aspects of the disclosed systems, no particular implementation or arrangement of software and/or hardware should be inferred from these descriptions unless explicitly stated or otherwise clear from the context. All such arrangements of software and/or hardware are intended to fall within the scope of this disclosure.

The block diagrams and flowchart illustrations depict methods, apparatus, systems, and computer program products. The elements and combinations of elements in the block diagrams and flow diagrams, show functions, steps, or groups of steps of the methods, apparatus, systems, computer program products and/or computer-implemented methods. Any and all such functions—generally referred to herein as a “circuit,” “module,” or “system”—may be implemented by computer program instructions, by special-purpose hardware-based computer systems, by combinations of special purpose hardware and computer instructions, by combinations of general purpose hardware and computer instructions, and so on.

A programmable apparatus which executes any of the above mentioned computer program products or computer-implemented methods may include one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, programmable devices, programmable gate arrays, programmable array logic, memory devices, application specific integrated circuits, or the like. Each may be suitably employed or configured to process computer program instructions, execute computer logic, store computer data, and so on.

It will be understood that a computer may include a computer program product from a computer-readable storage medium and that this medium may be internal or external, removable and replaceable, or fixed. In addition, a computer may include a Basic Input/Output System (BIOS), firmware, an operating system, a database, or the like that may include, interface with, or support the software and hardware described herein.

Embodiments of the present invention are neither limited to conventional computer applications nor the programmable apparatus that run them. To illustrate: the embodiments of the presently claimed invention could include an optical computer, quantum computer, analog computer, or the like. A computer program may be loaded onto a computer to produce a particular machine that may perform any and all of the depicted functions. This particular machine provides a means for carrying out any and all of the depicted functions.

Any combination of one or more computer readable media may be utilized including but not limited to: a non-transitory computer readable medium for storage; an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor computer readable storage medium or any suitable combination of the foregoing; a portable computer diskette; a hard disk; a random access memory (RAM); a read-only memory (ROM), an erasable programmable read-only memory (EPROM, Flash, MRAM, FeRAM, or phase change memory); an optical fiber; a portable compact disc; an optical storage device; a magnetic storage device; or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

A net list may be in the form of a transistor-level description, Verilog™, VHDL™, SystemVerilog™, SystemC™, or other design language. Whenever a net list is mentioned in this disclosure it should be understood that other forms of electrical representation are equally possible. In some embodiments, both net lists and schematics may be used together. It will be appreciated that computer program instructions may include computer executable code. A variety of languages for expressing computer program instructions may include without limitation C, C++, Java, JavaScript™, ActionScript™, assembly language, Lisp, Perl, Tcl, Python, Ruby, hardware description languages, database programming languages, functional programming languages, imperative programming languages, and so on. In embodiments, computer program instructions may be stored, compiled, or interpreted to run on a computer, a programmable data processing apparatus, a heterogeneous combination of processors or processor architectures, and so on. Without limitation, embodiments of the present invention may take the form of web-based computer software, which includes client/server software, software-as-a-service, peer-to-peer software, or the like.

In embodiments, a computer may enable execution of computer program instructions including multiple programs or threads. The multiple programs or threads may be processed approximately simultaneously to enhance utilization of the processor and to facilitate substantially simultaneous functions. By way of implementation, any and all methods, program codes, program instructions, and the like described herein may be implemented in one or more threads which may in turn spawn other threads, which may themselves have priorities associated with them. In some embodiments, a computer may process these threads based on priority or other order.

Unless explicitly stated or otherwise clear from the context, the verbs “execute” and “process” may be used interchangeably to indicate execute, process, interpret, compile, assemble, link, load, or a combination of the foregoing. Therefore, embodiments that execute or process computer program instructions, computer-executable code, or the like may act upon the instructions or code in any and all of the ways described. Further, the method steps shown are intended to include any suitable method of causing one or more parties or entities to perform the steps. The parties performing a step, or portion of a step, need not be located within a particular geographic location or country boundary. For instance, if an entity located within the United States causes a method step, or portion thereof, to be performed outside of the United States then the method is considered to be performed in the United States by virtue of the causal entity.

While the invention has been disclosed in connection with preferred embodiments shown and described in detail, various modifications and improvements thereon will become apparent to those skilled in the art. Accordingly, the forgoing examples should not limit the spirit and scope of the present invention; rather it should be understood in the broadest sense allowable by law. 

What is claimed is:
 1. A computer-implemented method for circuit analysis comprising: obtaining a description for a latch circuit; decomposing the latch circuit into a feed-forward circuit and a feedback circuit; determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; solving, using one or more processors, for meta-stable voltage bias points based on the first transfer function and the second transfer function; and calculating a settling time for the latch circuit based on the first transfer function and the second transfer function, wherein the calculating of the settling time is accomplished by applying the meta-stable voltage bias points, releasing the applying of the meta-stable voltage bias points, allowing signal to develop in the latch circuit, and fitting an exponential equation to a resulting waveform.
 2. The method of claim 1 wherein the solving for the meta-stable voltage bias points is accomplished based on an intersection of the first transfer function and the second transfer function.
 3. The method of claim 1 further comprising calculating a mean time between failure for the latch circuit based on the settling time.
 4. The method of claim 1 further comprising testing and confirming the meta-stable voltage bias points by evaluating the latch circuit, including both the feed-forward circuit and the feedback circuit, with a voltage source applied to an input to the latch circuit and identifying a voltage for the voltage source by minimizing current through the voltage source.
 5. The method of claim 1 wherein the latch circuit is comprised of a plurality of transistors.
 6. The method of claim 5 wherein the feed-forward circuit is comprised of a first subset of the plurality of transistors.
 7. The method of claim 6 wherein the feedback circuit is comprised of a second subset of the plurality of transistors.
 8. The method of claim 7 wherein the first subset and the second subset, of the plurality of transistors, are exclusive of one another.
 9. The method of claim 1 wherein the first transfer function provides an input-voltage to an output-voltage relationship for the feed-forward circuit.
 10. The method of claim 9 wherein the second transfer function provides an input-voltage to an output-voltage relationship for the feedback circuit.
 11. The method of claim 10 wherein a node for an input to the feed-forward circuit comprises a node for an output from the feedback circuit.
 12. The method of claim 10 wherein a node for an input to the feedback circuit comprises a node for an output from the feed-forward circuit.
 13. A computer-implemented method for circuit analysis comprising: obtaining a description for a latch circuit; evaluating the latch circuit, including both a feed-forward circuit and a feedback circuit; applying a voltage source to an input to the latch circuit during simulation; identifying a voltage for the voltage source where current through the voltage source is minimized; and solving, using one or more processors, for a meta-stable voltage bias point based on the voltage which was identified.
 14. The method of claim 13 wherein the identifying the voltage is accomplished by sweeping the voltage for the voltage source.
 15. The method of claim 13 wherein the identifying the voltage is accomplished by performing a binary search of applied voltages with the voltage source.
 16. The method of claim 13 further comprising calculating a settling time for the latch circuit by releasing the voltage source from the voltage which was identified and calculating the settling time based on a fit of an exponential equation to a resulting waveform.
 17. The method of claim 13 further comprising testing and confirming the meta-stable voltage bias point by decomposing the latch circuit into a feed-forward circuit and a feedback circuit; determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; and identifying a voltage bias point based on the first transfer function and the second transfer function.
 18. A computer program product embodied in a non-transitory computer readable medium for circuit analysis comprising: code for obtaining a description for a latch circuit; code for decomposing the latch circuit into a feed-forward circuit and a feedback circuit; code for determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; code for solving for meta-stable voltage bias points based on the first transfer function and the second transfer function; and code for calculating a settling time for the latch circuit based on the first transfer function and the second transfer function, wherein the calculating of the settling time is accomplished by applying the meta-stable voltage bias points, releasing the applying of the meta-stable voltage bias points, allowing signal to develop in the latch circuit, and fitting an exponential equation to a resulting waveform.
 19. The computer program product of claim 18 wherein the code for the solving for the meta-stable voltage bias points is accomplished based on an intersection of the first transfer function and the second transfer function.
 20. The computer program product of claim 18 further comprising code for calculating a mean time between failure for the latch circuit based on the settling time.
 21. The computer program product of claim 18 wherein the first transfer function provides an input-voltage to an output-voltage relationship for the feed-forward circuit.
 22. The computer program product of claim 21 wherein the second transfer function provides an input-voltage to an output-voltage relationship for the feedback circuit.
 23. The computer program product of claim 22 wherein a node for an input to the feed-forward circuit comprises a node for an output from the feedback circuit.
 24. A computer-implemented method for circuit analysis comprising: obtaining a description for a latch circuit; decomposing the latch circuit into a feed-forward circuit and a feedback circuit; determining a first transfer function for the feed-forward circuit and a second transfer function for the feedback circuit; solving, using one or more processors, for meta-stable voltage bias points based on the first transfer function and the second transfer function; calculating a settling time for the latch circuit based on the first transfer function and the second transfer function; and testing and confirming the meta-stable voltage bias points by evaluating the latch circuit, including both the feed-forward circuit and the feedback circuit, with a voltage source applied to an input to the latch circuit, and identifying a voltage for the voltage source by minimizing current through the voltage source. 